import 'snooperParsersym.dart';
import 'package:lpg2/lpg2.dart';
 class snooperParserprs implements ParseTable {
    static const  int ERROR_SYMBOL = 126;
    int   getErrorSymbol(){ return ERROR_SYMBOL; }

    static const  int SCOPE_UBOUND = 12;
    int   getScopeUbound(){ return SCOPE_UBOUND; }

    static const  int SCOPE_SIZE = 13;
    int   getScopeSize(){ return SCOPE_SIZE; }

    static const  int MAX_NAME_LENGTH = 26;
    int   getMaxNameLength(){ return MAX_NAME_LENGTH; }

    static const  int NUM_STATES = 229;
    int   getNumStates(){ return NUM_STATES; }

    static const  int NT_OFFSET = 126;
    int   getNtOffset(){ return NT_OFFSET; }

    static const  int LA_STATE_OFFSET = 3059;
    int   getLaStateOffset(){ return LA_STATE_OFFSET; }

    static const  int MAX_LA = 6;
    int   getMaxLa(){ return MAX_LA; }

    static const  int NUM_RULES = 240;
    int   getNumRules(){ return NUM_RULES; }

    static const  int NUM_NONTERMINALS = 109;
    int   getNumNonterminals(){ return NUM_NONTERMINALS; }

    static const  int NUM_SYMBOLS = 235;
    int   getNumSymbols(){ return NUM_SYMBOLS; }

    static const  int START_STATE = 241;
    int   getStartState(){ return START_STATE; }

    static const  int IDENTIFIER_SYMBOL = 0;
    int   getIdentifier_SYMBOL(){ return IDENTIFIER_SYMBOL; }

    static const  int EOFT_SYMBOL = 109;
    int   getEoftSymbol(){ return EOFT_SYMBOL; }

    static const  int EOLT_SYMBOL = 109;
    int   getEoltSymbol(){ return EOLT_SYMBOL; }

    static const  int ACCEPT_ACTION = 2812;
    int   getAcceptAction(){ return ACCEPT_ACTION; }

    static const  int ERROR_ACTION = 2819;
    int   getErrorAction(){ return ERROR_ACTION; }

    static const bool  BACKTRACK = true;
    bool  getBacktrack() { return BACKTRACK; }

    int  getStartSymbol() { return lhs(0); }
    bool  isValidForParser()  { return snooperParsersym.isValidForParser; }


     static  const List<int> _isNullable = [0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,1,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,1,0,0,
            0,1,0,0,0,1,0,0,0,0,
            0,0,0,0,0,1,0,0,1,0,
            0,0,1,0,1,1,0,0,0,0,
            1,1,0,0,1
        ];
       bool isNullable(int index){ return  snooperParserprs._isNullable[index] != 0; }

     static  const List<int> _prosthesesIndex = [0,
            59,67,75,71,72,73,68,74,97,98,
            99,76,77,78,79,80,81,82,83,84,
            85,86,87,88,89,90,91,92,93,54,
            94,104,106,5,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,60,100,101,107,15,16,62,95,8,
            10,61,63,64,102,103,4,6,58,65,
            66,105,2,3,7,11,12,13,14,55,
            56,57,69,70,96,108,109,1,9
        ];
       int prosthesesIndex(int index){ return  snooperParserprs._prosthesesIndex[index]; }

     static  const List<int> _isKeyword = [0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0
        ];
       bool isKeyword(int index){ return  snooperParserprs._isKeyword[index] != 0; }

     static  const List<int> _baseCheck = [0,
            0,1,1,2,1,1,3,0,1,1,
            1,3,0,1,3,0,1,6,1,2,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,4,4,3,5,
            0,1,1,2,5,1,1,1,2,0,
            1,0,1,3,3,1,4,3,1,3,
            2,5,0,2,1,1,8,3,8,3,
            1,1,4,1,2,1,1,1,1,1,
            3,3,3,1,1,2,1,1,1,2,
            2,1,1,1,2,2,1,2,2,1,
            3,3,3,1,3,3,1,3,3,1,
            3,3,3,3,1,3,3,1,3,1,
            3,1,3,1,3,1,3,1,2,0,
            1,1,1,1,3,0,1,0,1,5,
            1,1,3,3,1,1,1,3,1,1,
            1,1,1,1,1,1,1,1,1,1,
            2,3,3,3,3,3,1,1,3,3,
            3,3,3,2,2,3,3,1,1,1,
            3,3,3,1,1,1,1,1,3,3,
            3,3,3,3,4,4,3,3,3,3,
            3,4,3,4,3,1,1,3,0,1,
            6,2,3,6,3,3,4,3,3,3,
            -1,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,-30,1,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,-42,1,2,3,
            -3,5,6,-34,1,-212,-148,87,88,-12,
            -226,-13,2,93,94,-71,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,-210,-2,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,81,-4,-7,85,89,85,-10,98,99,
            95,91,87,88,-188,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,-17,90,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,61,62,63,64,65,
            66,67,68,69,70,71,72,73,74,75,
            76,77,-193,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,-18,-26,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,71,72,73,74,75,76,77,
            -196,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,-27,-28,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,76,77,-207,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            -29,-36,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,54,55,56,57,58,59,60,61,
            62,63,64,65,66,67,68,69,70,71,
            72,73,74,75,76,77,-216,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,-37,-45,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,60,61,62,63,
            64,65,66,67,68,69,70,71,72,73,
            74,75,76,77,-221,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,-46,-47,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,61,62,63,64,65,
            66,67,68,69,70,71,72,73,74,75,
            76,77,-222,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,-51,-53,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,71,72,73,74,75,76,77,
            -205,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,-54,-55,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,-167,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,-32,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            -5,1,2,3,4,5,6,7,8,9,
            10,11,12,13,-56,79,-133,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,105,-31,-57,-58,-59,-60,-197,80,-33,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,-68,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,-11,1,2,3,4,5,6,
            7,8,9,10,11,12,13,85,81,80,
            -137,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            -61,80,-113,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,-115,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,-14,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            -62,79,-138,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,-63,-65,79,-155,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,-156,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,-43,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,-72,79,-135,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,-74,-76,-77,79,-220,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,-6,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            -44,1,2,3,4,5,6,7,8,9,
            10,11,12,13,-78,-80,80,-35,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,-66,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,-117,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,-163,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,-184,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,-185,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,-186,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,-187,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,-192,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,-201,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,-218,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,-136,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,-132,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,-134,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,-126,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,-127,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,-128,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,-129,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,-130,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,-131,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,-121,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,-122,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,-38,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,-39,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,-40,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,-41,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,-123,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,-124,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,-125,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            -159,1,2,3,4,5,6,7,8,9,
            10,11,12,13,-48,1,2,3,4,5,
            6,7,8,9,10,11,12,13,-49,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,-50,1,2,3,4,5,6,7,
            8,9,10,11,12,13,-52,1,2,3,
            4,5,6,7,8,9,10,11,12,-75,
            1,2,3,4,5,6,7,8,9,10,
            11,12,-83,1,2,3,4,5,6,7,
            8,9,10,11,12,-194,1,2,3,4,
            5,6,7,8,9,10,11,107,-86,1,
            2,3,4,5,6,7,8,9,10,11,
            12,-112,1,2,3,4,5,6,7,8,
            9,10,11,12,-114,1,2,3,4,5,
            6,7,8,9,10,11,12,-118,1,2,
            3,4,5,6,7,8,9,10,11,12,
            -119,1,2,3,4,5,6,7,8,9,
            10,11,12,-120,1,2,3,4,5,6,
            7,8,9,10,11,12,-165,1,2,3,
            4,5,6,7,8,9,10,11,12,-198,
            1,2,3,4,5,6,7,8,9,10,
            11,12,-199,1,2,3,4,5,6,7,
            8,9,10,11,12,-195,1,2,3,4,
            5,6,7,8,9,10,11,-24,1,2,
            3,4,-25,1,2,3,4,-162,1,2,
            3,4,-8,1,2,3,4,-9,1,2,
            3,4,-15,1,2,3,4,-82,-81,32,
            -84,-85,-87,-88,32,-91,-146,-92,-224,32,
            -93,-94,-225,-95,32,33,-96,-97,-98,32,
            33,-73,-211,-99,32,33,-100,-101,-16,1,
            2,3,4,-19,1,2,3,4,-20,1,
            2,3,4,-102,-64,78,-103,-104,-67,-105,
            78,-106,-107,86,-108,78,-109,-110,86,92,
            32,33,-69,86,92,32,33,-111,-116,-70,
            32,33,-21,1,2,3,4,-22,1,2,
            3,4,-23,1,2,3,4,-79,1,2,
            3,4,-89,1,2,3,4,-90,1,2,
            3,4,81,106,32,33,-227,101,2,32,
            33,103,90,-139,32,33,104,96,97,32,
            33,-140,78,-141,32,33,82,83,84,32,
            33,-158,1,2,3,4,-142,89,-143,-144,
            78,-145,-147,-149,82,83,84,78,100,-150,
            102,82,83,84,-151,-152,-153,-154,-157,-160,
            -161,-164,-166,32,-168,-169,-170,-171,-172,-173,
            -174,-175,-176,-177,-178,-179,-180,-181,-182,-183,
            -189,-190,-191,-200,-202,-203,-204,81,-206,-208,
            -209,-213,-214,-215,-217,-219,-223,91,-228,-229,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0
        ];
       int baseCheck(int index){ return  snooperParserprs._baseCheck[index]; }
     static const List<int> _rhs = snooperParserprs._baseCheck;
    int    rhs(int index){ return snooperParserprs._rhs[index]; }

     static  const List<int> _baseAction = [
            93,93,93,94,94,87,87,95,109,109,
            81,96,96,97,97,98,99,99,88,77,
            77,34,34,34,34,34,34,35,35,35,
            35,35,35,35,35,35,35,35,35,35,
            35,35,35,35,35,35,35,35,35,35,
            35,35,35,35,35,35,35,71,36,101,
            37,100,100,102,102,89,70,70,1,1,
            76,76,72,72,42,78,82,83,84,82,
            82,82,38,90,90,91,91,39,103,40,
            104,2,4,5,7,7,7,7,6,6,
            6,12,12,12,12,13,13,14,14,14,
            15,16,17,17,17,18,19,20,20,20,
            21,21,21,21,22,22,22,23,23,23,
            24,24,24,24,24,25,25,25,26,26,
            27,27,28,28,29,29,31,31,30,43,
            80,80,3,3,79,79,105,105,9,9,
            8,8,8,41,41,73,73,73,44,74,
            74,74,74,74,74,74,74,74,74,74,
            74,45,46,47,47,48,48,85,85,49,
            50,50,51,51,52,52,52,52,86,86,
            92,92,53,53,32,32,32,32,33,33,
            54,54,54,54,54,55,55,56,56,57,
            58,59,10,60,11,61,75,75,62,106,
            106,63,107,107,63,64,65,66,67,68,
            69,1,848,99,98,97,100,94,104,96,
            770,161,162,105,2397,925,108,109,120,112,
            113,114,1003,926,1125,1004,1155,1154,1157,1156,
            1351,1382,1271,1147,2657,5,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,2659,2655,769,692,1224,1142,848,99,
            98,1054,100,95,1155,2665,1387,1323,3,6,
            1018,1222,1018,85,369,336,76,848,99,98,
            97,100,94,104,96,770,161,162,105,2397,
            925,108,109,120,112,113,114,1003,926,1125,
            1004,1155,1154,1157,1156,1351,1382,1271,1386,1135,
            5,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,2659,2655,769,
            692,1224,86,1258,1261,2611,64,2612,824,17,
            1463,18,2809,4,6,151,848,99,98,97,
            100,94,104,96,770,161,162,105,2397,925,
            108,109,120,112,113,114,1003,926,1125,1004,
            1155,1154,1157,1156,1351,1382,1271,1262,2805,19,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,2659,2655,769,692,
            1224,57,971,226,848,99,98,97,100,94,
            104,96,770,161,162,105,2397,925,108,109,
            120,112,113,114,1003,926,1125,1004,1155,1154,
            1157,1156,1351,1382,1271,1265,1152,19,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,2659,2655,769,692,1224,2801,
            971,301,848,99,98,97,100,94,104,96,
            770,161,162,105,2397,925,108,109,120,112,
            113,114,1003,926,1125,1004,1155,1154,1157,1156,
            1351,1382,1271,1165,1279,19,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,2659,2655,769,692,1224,326,971,451,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2397,925,108,109,120,112,113,114,
            1003,926,1125,1004,1155,1154,1157,1156,1351,1382,
            1271,1281,1058,19,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            2659,2655,769,692,1224,59,971,526,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,1004,1155,1154,1157,1156,1351,1382,1271,1282,
            1283,19,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,2659,2655,
            769,692,1224,65,971,601,848,99,98,97,
            100,94,104,96,770,161,162,105,2397,925,
            108,109,120,112,113,114,1003,926,1125,1004,
            1155,1154,1157,1156,1351,1382,1271,1289,1061,19,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,2659,2655,769,692,
            1224,2619,971,676,848,99,98,97,100,94,
            104,96,770,161,162,105,2397,925,108,109,
            120,112,113,114,1003,926,1125,1004,1155,1154,
            1157,1156,1351,1382,1271,1162,1123,19,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,2659,2655,769,692,1224,2623,
            971,376,848,99,98,97,100,94,104,96,
            770,161,162,105,2397,925,108,109,120,112,
            113,114,1003,926,1125,1004,1155,1154,1157,1156,
            1351,1382,1271,1010,1076,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,2659,2655,769,692,1224,789,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,1004,1155,1154,1157,1156,1351,154,1271,769,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2397,925,108,109,120,112,113,114,
            1003,926,1125,1004,1155,1154,1157,1156,1351,151,
            1271,1060,848,99,98,97,100,94,104,96,
            770,161,162,105,2410,770,2796,868,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,2785,2795,1018,837,1116,869,1238,1374,2662,
            769,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,1003,926,1125,1004,1155,1154,1157,1156,1351,
            151,1271,769,848,99,98,97,100,94,104,
            96,770,161,162,105,2397,925,108,109,120,
            112,113,114,1003,926,1125,1004,1155,1154,1157,
            1156,1351,151,1271,1060,848,99,98,97,100,
            94,104,96,770,161,162,105,2423,2660,12,
            2663,868,848,99,98,97,100,94,104,96,
            770,161,162,105,2397,925,108,109,120,112,
            113,114,1003,926,1125,1004,1155,1154,1157,1156,
            2789,844,2754,868,848,99,98,97,100,94,
            104,96,770,161,162,105,2527,925,108,109,
            120,112,113,114,1003,926,1125,1004,1155,1154,
            1157,1156,1351,154,1271,868,848,99,98,97,
            100,94,104,96,770,161,162,105,2527,925,
            108,109,120,112,113,114,1003,926,1125,1004,
            1155,1154,1157,1156,1351,154,1271,1060,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2449,912,2772,868,848,99,98,97,100,94,
            104,96,770,161,162,105,2397,925,108,109,
            120,112,113,114,1003,926,1125,1004,1155,1154,
            1157,2790,1263,804,2773,868,848,99,98,97,
            100,94,104,96,770,161,162,105,2397,925,
            108,109,120,112,113,114,1003,926,1125,1004,
            1155,1154,1157,1156,1351,154,1271,868,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,1004,1155,1154,1157,1156,1351,154,1271,1075,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2462,1251,2772,868,848,99,98,97,
            100,94,104,96,770,161,162,105,2397,925,
            108,109,120,112,113,114,1003,926,1125,1004,
            1155,1154,2787,1294,1297,1301,2773,769,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,1004,1155,1154,1157,1156,1351,151,1271,868,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2397,925,108,109,120,112,113,114,
            1003,926,1125,1004,1155,1154,1157,1156,1351,1575,
            1271,1093,848,99,98,97,100,94,104,96,
            770,161,162,105,2475,1304,1167,2807,868,848,
            99,98,97,100,94,104,96,770,161,162,
            105,2397,925,108,109,120,112,113,114,1003,
            926,1125,1004,1155,1154,1157,1156,1351,2668,1271,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,1003,926,1125,1004,1155,1154,1157,1156,1351,
            2752,1271,868,848,99,98,97,100,94,104,
            96,770,161,162,105,2397,925,108,109,120,
            112,113,114,1003,926,1125,1004,1155,1154,1157,
            1156,1351,2775,1271,868,848,99,98,97,100,
            94,104,96,770,161,162,105,2397,925,108,
            109,120,112,113,114,1003,926,1125,1004,1155,
            1154,1157,1156,1351,75,1271,868,848,99,98,
            97,100,94,104,96,770,161,162,105,2397,
            925,108,109,120,112,113,114,1003,926,1125,
            1004,1155,1154,1157,1156,1351,80,1271,868,848,
            99,98,97,100,94,104,96,770,161,162,
            105,2397,925,108,109,120,112,113,114,1003,
            926,1125,1004,1155,1154,1157,1156,1351,78,1271,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,1003,926,1125,1004,1155,1154,1157,1156,1351,
            2797,1271,848,848,99,98,97,100,94,104,
            96,770,161,162,105,2397,925,108,109,120,
            112,113,114,1003,926,1125,1004,1155,1154,1157,
            1156,1351,75,1271,868,848,99,98,97,100,
            94,104,96,770,161,162,105,2397,925,108,
            109,120,112,113,114,1003,926,1125,1004,1155,
            1154,1157,1156,1351,2800,1271,868,848,99,98,
            97,100,94,104,96,770,161,162,105,2397,
            925,108,109,120,112,113,114,1003,926,1125,
            1004,1155,1154,1157,1156,1351,155,1271,868,848,
            99,98,97,100,94,104,96,770,161,162,
            105,2397,925,108,109,120,112,113,114,1003,
            926,1125,1004,1155,1154,1157,1156,1351,84,1271,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,1003,926,1125,1004,1155,2788,868,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,926,
            1125,1004,2784,868,848,99,98,97,100,94,
            104,96,770,161,162,105,2397,925,108,109,
            120,112,113,114,1003,926,1125,2786,868,848,
            99,98,97,100,94,104,96,770,161,162,
            105,2397,925,108,109,120,112,113,114,1003,
            926,2778,868,848,99,98,97,100,94,104,
            96,770,161,162,105,2397,925,108,109,120,
            112,113,114,1003,926,2779,868,848,99,98,
            97,100,94,104,96,770,161,162,105,2397,
            925,108,109,120,112,113,114,1003,926,2780,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,1003,926,2781,868,848,99,98,97,100,
            94,104,96,770,161,162,105,2397,925,108,
            109,120,112,113,114,1003,2782,868,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,120,112,113,114,1003,2783,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,120,112,113,
            114,2776,868,848,99,98,97,100,94,104,
            96,770,161,162,105,2397,925,108,109,120,
            112,113,114,2777,868,848,99,98,97,100,
            94,104,96,770,161,162,105,2397,925,108,
            109,115,112,113,114,868,848,99,98,97,
            100,94,104,96,770,161,162,105,2397,925,
            108,109,116,112,113,114,868,848,99,98,
            97,100,94,104,96,770,161,162,105,2397,
            925,108,109,119,112,113,114,868,848,99,
            98,97,100,94,104,96,770,161,162,105,
            2397,925,108,109,118,112,113,114,868,848,
            99,98,97,100,94,104,96,770,161,162,
            105,2397,925,108,109,123,112,113,114,868,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2397,925,108,109,122,112,113,114,
            868,848,99,98,97,100,94,104,96,770,
            161,162,105,2397,925,108,109,121,112,113,
            114,1060,848,99,98,97,100,94,104,96,
            770,161,162,2794,2540,1060,848,99,98,97,
            100,94,104,96,770,161,162,105,2488,1060,
            848,99,98,97,100,94,104,96,770,161,
            162,105,2501,1060,848,99,98,97,100,94,
            104,96,770,161,162,105,2514,809,848,99,
            98,97,100,94,104,96,770,161,162,106,
            903,848,99,98,97,100,94,104,96,770,
            161,162,106,918,848,99,98,97,100,94,
            104,96,770,161,162,106,1108,848,99,98,
            97,100,94,368,96,770,161,162,2553,933,
            848,99,98,97,100,94,104,96,770,161,
            162,106,948,848,99,98,97,100,94,104,
            96,770,161,162,106,964,848,99,98,97,
            100,94,104,96,770,161,162,106,979,848,
            99,98,97,100,94,104,96,770,161,162,
            106,994,848,99,98,97,100,94,104,96,
            770,161,162,106,1009,848,99,98,97,100,
            94,104,96,770,161,162,106,888,848,99,
            98,97,100,94,104,96,770,161,162,106,
            1024,848,99,98,97,100,94,104,96,770,
            161,162,106,1039,848,99,98,97,100,94,
            104,96,770,161,162,2804,1108,848,99,98,
            97,100,94,2633,96,770,161,162,1134,153,
            206,205,207,1134,153,206,205,207,1134,153,
            206,205,207,1124,153,206,205,207,1124,153,
            206,205,207,1124,153,206,205,207,1307,1169,
            199,1309,1313,1172,1185,199,1193,1181,1198,1391,
            199,1203,1211,1403,1215,208,1576,1219,1275,1224,
            208,2609,1291,1386,1316,208,2613,1318,1321,1124,
            153,206,205,207,1124,153,206,205,207,1124,
            153,206,205,207,1325,1171,198,1327,1331,1248,
            1335,198,1339,1341,200,1344,198,1346,1348,200,
            2627,208,2614,1171,201,2629,208,2616,1350,1352,
            1171,208,2618,1124,153,206,205,207,1124,153,
            206,205,207,1124,153,206,205,207,1124,153,
            206,205,207,1124,153,206,205,207,1124,153,
            206,205,207,11,2341,208,2621,1222,2791,85,
            208,2622,87,2806,1355,208,2624,89,2768,2767,
            208,2769,1296,76,1302,208,2770,2724,2734,79,
            208,2771,1124,153,206,205,207,1160,63,1357,
            1359,76,1362,790,1364,2760,2734,79,76,2617,
            1329,327,2765,2734,79,1333,1366,16,1025,1227,
            1232,1235,973,980,209,766,1094,1109,1183,1192,
            1196,1201,1206,1209,1217,1110,1136,1353,1337,1368,
            1369,784,1370,1372,1375,166,1377,1378,86,1379,
            1384,1381,1389,1393,1395,1397,1399,1401,2810,1404,
            1406,2819,0,2355,107,0,2921,107,0
        ];
       int baseAction(int index){ return  snooperParserprs._baseAction[index]; }
     static const List<int>  _lhs =snooperParserprs._baseAction;
   int   lhs(int index){ return snooperParserprs._lhs[index]; }

     static  const List<int> _termCheck = [0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            75,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            75,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            0,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            0,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            0,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,0,16,17,0,0,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,0,16,17,18,19,0,0,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,0,16,17,18,19,0,20,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,0,21,22,76,77,78,79,
            80,81,82,10,84,85,0,87,88,89,
            90,91,92,0,94,76,77,0,98,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,97,16,17,18,19,0,0,2,
            3,4,5,6,7,8,0,10,11,12,
            13,14,99,16,17,18,19,0,0,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,0,1,2,
            3,4,5,6,7,8,90,10,11,12,
            13,14,0,1,2,3,4,5,6,7,
            8,98,10,11,12,13,14,0,1,2,
            3,4,5,6,7,8,88,10,11,12,
            13,14,75,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,0,0,
            2,3,4,5,6,7,8,15,10,11,
            12,13,14,0,15,2,3,4,5,6,
            7,8,91,10,11,12,13,14,0,0,
            2,3,4,5,6,7,8,0,10,11,
            12,13,14,0,0,2,3,4,5,6,
            7,8,0,10,11,12,13,14,0,15,
            2,3,4,5,6,7,8,75,10,11,
            12,13,14,0,75,2,78,0,1,0,
            0,2,3,4,5,6,7,8,75,10,
            11,12,13,14,0,0,2,3,4,5,
            6,7,8,8,10,11,12,13,14,80,
            81,82,0,0,2,3,4,5,6,7,
            8,93,10,11,12,13,14,0,0,0,
            3,4,5,6,7,0,93,8,11,12,
            13,14,0,0,107,108,3,4,5,6,
            7,93,9,0,0,0,3,4,5,6,
            7,0,9,8,3,4,0,6,7,3,
            4,0,1,78,0,9,96,3,4,0,
            85,0,87,9,0,1,0,1,0,1,
            0,0,1,80,81,82,6,16,17,9,
            0,15,0,15,0,1,15,78,80,81,
            82,0,0,1,85,0,87,0,1,15,
            0,79,0,1,89,0,84,15,0,94,
            0,1,15,78,0,1,0,15,0,1,
            85,0,87,0,1,15,0,1,7,15,
            9,0,1,15,0,1,0,0,15,0,
            0,15,2,109,0,86,15,0,9,15,
            0,15,101,9,0,96,2,0,76,77,
            0,0,0,1,0,101,9,76,77,9,
            9,76,77,9,0,95,76,77,0,99,
            0,0,0,5,79,5,5,79,0,84,
            0,9,84,0,1,0,0,9,2,9,
            0,0,2,0,1,89,0,1,0,1,
            94,75,0,1,75,0,1,0,1,75,
            0,1,0,83,0,1,0,1,0,92,
            0,1,0,83,0,1,0,83,0,1,
            0,1,95,0,1,0,1,0,1,0,
            1,0,0,2,0,1,0,1,0,1,
            86,0,1,0,1,0,1,0,0,0,
            1,0,1,0,0,1,0,0,0,1,
            0,86,9,0,1,0,0,86,0,1,
            0,15,0,1,0,1,0,1,0,1,
            0,1,0,0,1,0,1,0,0,0,
            0,0,2,0,0,0,0,95,0,0,
            0,0,0,0,0,0,90,20,100,20,
            0,0,100,0,0,0,0,0,0,0,
            0,0,0,0,92,0,0,0,0,0,
            0,0,0,0,0,0,88,0,91,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,97,0,0,0,0,0,
            0,0,0,0,104,0,0,0,102,0,
            105,83,0,103,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,106,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        ];
       int termCheck(int index){ return  snooperParserprs._termCheck[index]; }

     static  const List<int> _termAction = [0,
            1,2885,2369,847,2887,2911,3810,2910,2355,4300,
            2383,2978,1449,1561,317,2819,2215,2194,2236,2257,
            1610,2673,2680,2886,1079,2999,2998,1383,413,1192,
            2984,2985,2986,2988,2989,1578,2990,324,1160,2991,
            2992,1153,613,536,2993,273,691,614,2994,2995,
            2996,2583,2578,2693,2688,2683,2649,2644,535,457,
            2639,2603,1337,332,330,3045,3046,418,2598,2593,
            414,1529,2997,1111,2892,2,2885,2369,847,2887,
            2911,3810,2910,2355,4314,2383,2978,1449,1561,317,
            2834,2215,2194,2236,2257,1610,2673,2680,2886,1079,
            2999,2998,1383,413,1192,2984,2985,2986,2988,2989,
            1578,2990,324,1160,2991,2992,1153,613,536,2993,
            273,691,614,2994,2995,2996,2583,2578,2693,2688,
            2683,2649,2644,535,457,2639,2603,1337,332,330,
            3045,3046,418,2598,2593,414,1529,2997,1111,2892,
            70,2885,2369,847,2887,2911,3810,2910,2355,4470,
            2383,2978,1449,1561,317,2819,2215,2194,2236,2257,
            1610,2673,2680,2886,1079,2999,2998,1383,413,1192,
            2984,2985,2986,2988,2989,1578,2990,324,1160,2991,
            2992,1153,613,536,2993,273,691,614,2994,2995,
            2996,2583,2578,2693,2688,2683,2649,2644,535,457,
            2639,2603,1337,332,330,3045,3046,418,2598,2593,
            414,1529,2997,1111,2892,70,2885,2369,847,2887,
            2911,3810,2910,2355,4470,2383,2978,1449,1561,317,
            2979,2215,2194,2236,2257,1610,2673,2680,2886,1079,
            2999,2998,1383,413,1192,2984,2985,2986,2988,2989,
            1578,2990,324,1160,2991,2992,1153,613,536,2993,
            273,691,614,2994,2995,2996,2583,2578,2693,2688,
            2683,2649,2644,535,457,2639,2603,1337,332,330,
            3045,3046,418,2598,2593,414,1529,2997,1111,2892,
            70,2885,2369,847,2887,2911,3810,2910,2355,4470,
            2383,2978,1449,1561,317,2819,2215,2194,2236,2257,
            1610,2673,2680,2886,1079,2999,2998,1383,413,1192,
            2984,2985,2986,2988,2989,1578,2990,324,1160,2991,
            2992,1153,613,536,2993,273,691,614,2994,2995,
            2996,2583,2578,2693,2688,2683,2649,2644,535,457,
            2639,2603,1337,332,330,3045,3046,418,2598,2593,
            414,1529,2997,1111,2892,71,2885,2369,847,2887,
            2911,3810,2910,2355,4470,2383,2978,1449,1561,317,
            2819,2215,2194,2236,2257,1610,2673,2680,2886,1079,
            2999,2998,1383,413,1192,2984,2985,2986,2988,2989,
            1578,2990,324,1160,2991,2992,1153,613,536,2993,
            273,691,614,2994,2995,2996,2583,2578,2693,2688,
            2683,2649,2644,535,457,2639,2603,1337,332,330,
            3045,3046,418,2598,2593,414,1529,2997,1111,2892,
            70,2885,2369,847,2887,2911,3810,2910,2355,4470,
            2383,2978,1449,1561,317,2819,2215,2194,2236,2257,
            1610,2673,2680,2886,1079,2999,2998,1383,413,1192,
            2984,2985,2986,2988,2989,1578,2990,324,1160,2991,
            2992,1153,613,536,2993,273,691,614,2994,2995,
            2996,2583,2578,2693,2688,2683,2649,2644,535,457,
            2639,2603,1337,332,330,3045,3046,418,2598,2593,
            414,1529,2997,1111,2892,70,2885,2369,847,2887,
            2911,3810,2910,2355,4470,2383,2978,1449,1561,317,
            2819,2215,2194,2236,2257,1610,2673,2680,2886,1079,
            2999,2998,1383,413,1192,2984,2985,2986,2988,2989,
            1578,2990,324,1160,2991,2992,1153,613,536,2993,
            273,691,614,2994,2995,2996,2583,2578,2693,2688,
            2683,2649,2644,535,457,2639,2603,1337,332,330,
            3045,3046,418,2598,2593,414,1529,2997,1111,2892,
            70,2885,2369,847,2887,2911,3810,2910,2355,4470,
            2383,2978,1449,1561,317,2819,2215,2194,2236,2257,
            1610,2673,2680,2886,1079,2999,2998,1383,413,1192,
            2984,2985,2986,2988,2989,1578,2990,324,1160,2991,
            2992,1153,613,536,2993,273,691,614,2994,2995,
            2996,2583,2578,2693,2688,2683,2649,2644,535,457,
            2639,2603,1337,332,330,3045,3046,418,2598,2593,
            414,1529,2997,1111,2892,70,2885,2369,847,2887,
            2911,3810,2910,2355,4470,2383,2978,1449,1561,317,
            2819,2215,2194,2236,2257,1610,2673,2680,2886,1079,
            2999,2998,1383,413,1192,2984,2985,2986,2988,2989,
            1578,2990,324,1160,2991,2992,1153,613,536,2993,
            273,691,614,2994,2995,2996,2583,2578,2693,2688,
            2683,2649,2644,535,457,2639,2603,1337,332,330,
            3045,3046,418,2598,2593,414,1529,2997,1111,2892,
            72,2971,2971,2971,2971,2971,2971,2971,2971,2971,
            2971,2971,2971,2971,2971,2819,2971,2971,150,130,
            2369,847,2887,2911,2971,2910,2355,158,2383,2978,
            1494,1495,317,2819,2215,2194,2236,2257,156,2819,
            2369,847,2887,2911,2971,2910,2355,158,2383,2978,
            1494,1495,317,2819,2215,2194,2236,2257,107,1834,
            2369,847,2887,2911,2971,2910,2813,158,2383,2978,
            1494,1495,317,2819,2750,2749,2971,2971,2971,2971,
            2971,2971,2971,2608,2971,2971,140,2971,2971,2971,
            2971,2971,2971,148,2971,2127,2104,81,2971,2369,
            847,2887,2911,2971,2910,2355,158,2383,2978,1494,
            1495,317,2912,2215,2194,2236,2257,158,144,2369,
            847,2887,2911,2971,2910,2355,2819,2383,2978,1494,
            1495,317,2799,2215,2194,2236,2257,107,2819,2369,
            847,2887,2911,2971,2910,2813,158,2383,2978,1494,
            1495,317,158,3058,2369,847,2887,2911,2971,2910,
            2355,146,2383,2978,1494,1495,317,158,3047,2369,
            847,2887,2911,2971,2910,2355,1957,2383,2978,1494,
            1495,317,158,3038,2369,847,2887,2911,2971,2910,
            2355,1241,2383,2978,1494,1495,317,158,3042,2369,
            847,2887,2911,2971,2910,2355,1465,2383,2978,1494,
            1495,317,2816,158,3044,2369,847,2887,2911,2971,
            2910,2355,2819,2383,2978,1494,1495,317,158,2819,
            2369,847,2887,2911,2971,2910,2355,1866,2383,2978,
            1494,1495,317,158,1866,2369,847,2887,2911,2971,
            2910,2355,1353,2383,2978,1494,1495,317,158,124,
            2369,847,2887,2911,2971,2910,2355,2819,2383,2978,
            1494,1495,317,158,14,2369,847,2887,2911,2971,
            2910,2355,2819,2383,2978,1494,1495,317,158,1158,
            2369,847,2887,2911,2971,2910,2355,3041,2383,2978,
            1494,1495,317,16,3043,2632,2922,2819,3000,158,
            153,2369,847,2887,2911,2971,2910,2355,2921,2383,
            2978,1494,1495,317,158,135,1273,847,2887,2911,
            2971,2910,2355,2080,2383,2978,1494,1495,317,2278,
            2320,2299,158,126,1305,847,2887,2911,2971,2910,
            2355,2920,2383,2978,1494,1495,317,158,125,137,
            847,2887,2911,2971,2910,138,2802,2080,2978,1494,
            1495,317,127,2819,3006,3007,847,2887,2911,2971,
            2910,2803,3023,2819,2819,136,847,2887,2911,2971,
            2910,2819,2628,2080,847,2887,2819,2971,2910,847,
            2887,2819,3014,2056,2819,2658,1642,847,2887,2819,
            2032,117,2008,2667,2819,3013,2819,3055,2819,3054,
            2819,2819,3037,2278,2320,2299,2732,2930,2929,2747,
            2819,2742,134,2742,2819,3036,2742,2056,2278,2320,
            2299,133,2819,3033,2032,132,2008,2819,3032,2742,
            131,2150,2819,3031,1127,129,2172,2742,128,1983,
            2819,3030,2742,2056,2819,3029,139,2742,2819,3022,
            2032,2819,2008,2819,3021,2742,2819,3056,2910,2742,
            2829,2819,3035,2588,2819,3034,158,142,2588,158,
            72,2742,4299,2812,158,1802,2742,61,4296,2742,
            2819,321,2634,4296,72,1770,4304,2819,2127,2104,
            2819,2819,2819,2968,2819,2637,1493,2127,2104,2698,
            2703,2127,2104,2708,204,2793,2127,2104,2819,2792,
            2819,2819,2819,2638,2150,2654,2678,2150,2819,2172,
            13,2679,2172,2819,3059,2819,2819,2888,1385,2829,
            2819,2819,1417,2819,3057,1127,229,3049,2819,3040,
            1983,321,2819,3039,4468,2819,3016,2819,3015,4468,
            2819,3012,62,321,2819,3011,2819,3010,2819,1930,
            2819,3009,2819,2766,2819,3008,141,321,2819,3005,
            2819,3004,4467,2819,3003,2819,3002,2819,3001,2819,
            2987,2819,143,1047,2819,2893,2819,2983,2819,2982,
            1674,2819,425,2819,503,2819,581,147,145,2819,
            2877,2819,659,2819,105,3051,157,2819,2819,2879,
            2819,1706,2829,2819,737,83,2819,1738,2819,3050,
            2819,1866,2819,3053,2819,3052,2819,815,2819,893,
            2819,2826,2819,2819,2907,2819,2909,61,158,62,
            72,2819,158,2819,2819,2819,2819,4469,2819,2819,
            2819,2819,2819,2819,2819,2819,1957,2753,2436,2753,
            2819,2819,2566,2819,2819,2819,2819,2819,2819,2819,
            2819,2819,2819,2819,1930,2819,2819,2819,2819,2819,
            2819,2819,2819,2819,2819,2819,1465,2819,1353,2819,
            2819,2819,2819,2819,2819,2819,2819,2819,2819,2819,
            2819,2819,2819,2819,2896,2819,2819,2819,2819,2819,
            2819,2819,2819,2819,2901,2819,2819,2819,1497,2819,
            1898,321,2819,331,2819,2819,2819,2819,2819,2819,
            2819,2819,2819,2819,2819,2819,2819,2819,2717
        ];
       int termAction(int index){ return  snooperParserprs._termAction[index]; }

     static  const List<int> _asb = [0,
            1,87,76,431,525,521,431,532,532,591,
            525,81,81,525,532,532,431,431,532,532,
            532,532,532,532,532,164,164,623,623,429,
            81,520,520,429,521,599,623,521,521,521,
            521,534,525,525,431,431,317,525,525,525,
            433,320,438,435,442,440,448,446,450,449,
            452,451,599,161,239,521,601,520,161,161,
            1,77,355,599,418,556,556,599,532,598,
            598,418,418,599,599,418,598,598,532,532,
            598,598,598,598,598,598,597,598,599,599,
            599,599,599,599,599,599,599,599,599,599,
            599,418,521,418,521,556,521,578,343,610,
            521,521,521,521,521,521,521,521,521,521,
            521,521,521,521,521,521,521,521,599,605,
            605,604,599,599,599,601,74,601,599,576,
            576,599,356,456,521,521,598,532,525,598,
            598,532,521,456,323,456,539,607,435,435,
            440,440,440,440,438,438,446,442,442,449,
            448,451,450,521,521,521,558,463,602,599,
            599,521,89,528,528,167,431,610,610,609,
            521,356,456,607,459,599,464,599,625,84,
            84,79,599,599,599,463,599,521,599,520,
            242,358,599,593,595,314,314,599,599
        ];
       int asb(int index){ return  snooperParserprs._asb[index]; }

     static  const List<int> _asr = [0,
            109,22,21,29,27,74,10,2,8,7,
            4,3,6,13,12,11,5,14,19,18,
            16,17,30,31,32,33,34,36,39,40,
            44,48,49,50,72,26,25,35,37,38,
            24,41,45,46,47,42,43,51,52,53,
            54,55,56,57,58,59,60,61,62,63,
            64,65,66,67,68,69,70,71,73,28,
            1,23,9,20,0,2,83,0,102,0,
            107,108,0,1,105,0,109,0,104,1,
            23,28,73,71,70,69,68,67,65,66,
            13,12,64,63,62,60,61,58,59,53,
            54,55,56,57,51,52,42,43,46,47,
            45,41,38,24,37,35,33,34,36,39,
            40,44,48,49,50,72,26,25,30,31,
            32,17,16,19,18,14,5,11,4,3,
            7,10,2,8,74,27,20,29,21,22,
            9,6,0,1,101,0,102,9,1,23,
            28,73,71,70,69,68,67,65,66,13,
            12,64,63,62,60,61,58,59,53,54,
            55,56,57,51,52,42,43,46,47,45,
            41,38,24,37,35,33,34,36,39,40,
            44,48,49,50,72,26,25,30,31,32,
            17,16,19,18,14,5,11,6,4,3,
            7,10,2,8,74,27,20,29,21,22,
            0,103,1,23,28,73,71,70,69,68,
            67,65,66,13,12,64,63,62,60,61,
            58,59,53,54,55,56,57,51,52,42,
            43,46,47,45,41,38,24,37,35,33,
            34,36,39,40,44,48,49,50,72,26,
            25,30,31,32,17,16,19,18,14,5,
            11,6,4,3,10,2,8,74,27,20,
            29,21,22,7,9,0,93,105,96,97,
            100,1,16,88,79,89,80,90,91,81,
            15,82,92,98,84,17,76,85,94,78,
            87,77,14,5,11,12,13,6,4,3,
            7,10,2,8,9,75,0,106,23,28,
            73,71,70,69,68,67,65,66,64,63,
            62,60,61,58,59,53,54,55,56,57,
            51,52,42,43,46,47,45,41,38,24,
            37,35,33,34,36,39,40,44,48,49,
            50,72,26,25,30,31,32,17,16,19,
            18,74,27,20,29,21,22,14,5,11,
            12,13,6,7,10,2,8,1,4,3,
            9,0,17,16,81,82,80,84,79,76,
            77,8,78,85,87,94,89,90,92,88,
            91,97,100,1,98,75,15,0,102,103,
            104,106,95,99,23,28,73,71,70,69,
            68,67,65,66,64,63,62,60,61,58,
            59,53,54,55,56,57,51,52,42,43,
            46,47,45,41,38,24,37,35,33,34,
            36,39,40,44,48,49,50,72,26,25,
            30,31,32,74,27,20,29,21,22,1,
            19,18,16,17,10,2,8,13,12,11,
            14,9,5,6,4,3,7,0,75,9,
            10,8,7,4,3,6,13,12,11,5,
            14,19,18,16,17,2,0,1,9,10,
            2,8,7,4,3,6,13,12,11,5,
            14,19,18,16,17,100,0,9,14,5,
            11,12,13,6,4,3,7,2,8,78,
            10,0,103,0,106,0,86,15,1,0,
            95,99,0,96,86,0,97,0,1,9,
            14,11,12,13,6,4,3,7,10,2,
            8,93,5,0,104,0
        ];
       int asr(int index){ return  snooperParserprs._asr[index]; }

     static  const List<int> _nasb = [0,
            1,48,10,48,46,46,48,59,59,48,
            46,16,16,46,59,59,48,48,59,59,
            59,59,59,55,55,48,48,48,48,47,
            16,46,46,47,46,48,48,46,46,46,
            46,47,46,46,48,48,48,46,46,46,
            48,46,48,48,48,48,48,48,48,48,
            48,48,48,71,48,46,74,46,71,71,
            20,48,69,48,46,48,48,48,59,48,
            48,61,46,48,48,46,48,48,59,59,
            48,48,48,48,48,48,48,48,48,48,
            48,48,48,48,48,48,48,48,48,48,
            48,46,46,46,46,48,46,46,46,46,
            46,46,46,46,46,46,46,46,46,46,
            46,46,46,46,46,46,46,46,48,48,
            48,48,48,48,48,63,48,14,48,48,
            48,48,48,48,46,46,48,76,51,48,
            48,57,46,48,46,48,46,48,48,48,
            48,48,48,48,48,48,48,48,48,48,
            48,48,48,46,46,46,46,31,48,48,
            48,46,31,46,46,31,49,46,46,48,
            46,48,48,48,40,48,31,48,48,29,
            29,12,48,48,48,31,48,46,48,46,
            31,31,48,65,67,18,18,48,48
        ];
       int nasb(int index){ return  snooperParserprs._nasb[index]; }

     static  const List<int> _nasr = [0,
            94,71,72,1,9,73,74,75,0,99,
            0,95,0,89,0,85,0,91,0,71,
            72,1,9,73,74,75,87,0,90,0,
            77,75,74,73,9,1,72,71,0,75,
            74,73,72,71,34,9,1,0,81,0,
            107,1,9,0,92,0,86,0,33,0,
            106,0,101,0,103,0,104,0,96,0,
            83,82,0,102,0,32,0
        ];
       int nasr(int index){ return  snooperParserprs._nasr[index]; }

     static  const List<int> _terminalIndex = [0,
            117,13,1,115,120,101,116,37,119,29,
            51,102,103,118,17,2,35,6,33,48,
            58,61,22,23,46,47,53,55,56,63,
            64,65,66,67,68,69,70,71,72,73,
            74,77,78,79,80,81,82,83,85,86,
            87,88,89,90,91,92,93,94,95,96,
            97,98,99,100,104,105,106,107,108,109,
            110,111,112,113,14,38,44,42,4,8,
            15,19,21,34,39,40,43,3,7,10,
            11,27,32,41,49,25,26,30,50,59,
            84,52,54,57,60,62,75,76,114,5,
            9,12,16,18,20,24,28,31,36,121,
            122,123,124,125,126,127
        ];
       int terminalIndex(int index){ return  snooperParserprs._terminalIndex[index]; }

     static  const List<int> _nonterminalIndex = [0,
            140,0,0,0,0,147,144,0,0,0,
            0,148,149,150,0,0,151,0,0,0,
            152,153,154,155,156,157,158,159,160,136,
            161,167,169,130,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            135,0,163,164,170,0,134,0,162,0,
            132,141,142,0,165,166,129,0,139,0,
            143,168,0,128,131,133,0,0,0,0,
            137,138,145,146,0,0,171,0,0
        ];
       int nonterminalIndex(int index){ return  snooperParserprs._nonterminalIndex[index]; }

     static  const List<int> _scopePrefix = [
            35,45,11,55,1,7,29,62,16,21,
            24,69,69
        ];
       int scopePrefix(int index){ return  snooperParserprs._scopePrefix[index]; }

     static  const List<int> _scopeSuffix = [
            43,53,5,60,5,5,33,66,19,5,
            27,66,72
        ];
       int scopeSuffix(int index){ return  snooperParserprs._scopeSuffix[index]; }

     static  const List<int> _scopeLhs = [
            40,39,8,38,11,10,5,37,12,12,
            12,36,37
        ];
       int scopeLhs(int index){ return  snooperParserprs._scopeLhs[index]; }

     static  const List<int> _scopeLa = [
            106,103,75,104,75,75,97,99,78,75,
            93,99,95
        ];
       int scopeLa(int index){ return  snooperParserprs._scopeLa[index]; }

     static  const List<int> _scopeStateSet = [
            68,68,2,68,2,2,1,68,4,4,
            4,68,68
        ];
       int scopeStateSet(int index){ return  snooperParserprs._scopeStateSet[index]; }

     static  const List<int> _scopeRhs = [0,
            205,2,13,0,75,0,205,2,12,0,
            231,2,9,135,0,139,8,0,78,0,
            139,2,0,139,10,0,93,0,156,96,
            127,0,97,0,202,1,216,133,100,208,
            22,0,230,0,202,1,216,133,100,208,
            21,0,229,0,202,1,206,29,0,104,
            0,227,226,197,0,99,1,0,226,197,
            0,227,99,1,0
        ];
       int scopeRhs(int index){ return  snooperParserprs._scopeRhs[index]; }

     static  const List<int> _scopeState = [0,
            317,2566,2436,1497,1898,1866,2553,2540,1834,1802,
            1770,1738,1706,1047,2527,1674,2341,1417,1385,1353,
            1241,1930,1465,1983,1127,1957,2127,2104,2080,2056,
            2032,2008,2320,2299,2278,2172,2150,2514,2501,2488,
            1642,1305,2475,1273,2462,2449,2423,2410,1192,1610,
            2397,2383,2369,2355,1561,1449,2257,2236,2215,2194,
            1578,1160,1079,1337,1224,1529,1111,893,815,737,
            659,971,581,503,425,336,241,0
        ];
       int scopeState(int index){ return  snooperParserprs._scopeState[index]; }

     static  const List<int> _inSymb = [0,
            0,219,9,28,73,71,70,69,68,67,
            201,64,63,62,61,60,59,58,57,56,
            55,54,53,52,51,43,42,47,46,45,
            41,24,38,37,35,200,199,17,16,18,
            19,14,12,13,135,3,127,8,2,10,
            140,139,148,147,150,149,152,151,154,153,
            157,155,156,198,27,20,197,29,21,22,
            220,225,2,9,139,12,13,156,9,159,
            159,10,139,211,211,139,159,159,9,9,
            159,159,159,159,159,218,9,218,101,101,
            5,5,127,9,211,206,206,127,9,156,
            5,139,2,139,2,9,96,139,139,139,
            79,84,80,82,81,87,85,78,8,77,
            76,90,89,94,88,92,98,91,208,6,
            209,9,22,21,156,226,95,228,206,208,
            208,83,223,222,2,2,159,15,232,159,
            159,15,86,205,139,205,2,156,147,147,
            149,149,149,149,148,148,151,150,150,153,
            152,155,154,86,86,96,86,1,227,99,
            95,20,1,100,100,1,15,139,233,138,
            15,231,205,156,203,99,1,156,202,133,
            133,202,93,93,138,1,216,105,216,102,
            1,1,206,202,202,103,106,217,217
        ];
       int inSymb(int index){ return  snooperParserprs._inSymb[index]; }

     static  const List<String> _name = [
            "",
            "\$",
            "--",
            "|",
            "-",
            "-=",
            "!",
            "!=",
            "%",
            "%=",
            "&",
            "&&",
            "&=",
            "(",
            ")",
            "*",
            "*=",
            ",",
            ".",
            "/",
            "/=",
            ":",
            ";",
            "?",
            "@",
            "[",
            "]",
            "^",
            "^=",
            "{",
            "||",
            "|=",
            "}",
            "~",
            "+",
            "++",
            "+=",
            "<",
            "<<",
            "<=",
            "=",
            "==",
            ">",
            ">=",
            ">>",
            "%empty",
            "clear",
            "end",
            "if",
            "else",
            "endif",
            "call",
            "return",
            "exit",
            "next",
            "goto",
            "do",
            "loop",
            "for",
            "to",
            "step",
            "hfor",
            "hnext",
            "load_script",
            "loadprofile",
            "run_script",
            "timer_begin",
            "timer_end",
            "sleep",
            "pause",
            "set",
            "message",
            "__file__",
            "__line__",
            "auto_response",
            "on",
            "off",
            "reset",
            "reset2",
            "clear_fifo",
            "write_fifo",
            "upload",
            "upload2",
            "beep",
            "cold",
            "eject",
            "insert",
            "install",
            "install_2",
            "jcop22_ext_auth",
            "jcop22_ext_auth_kmc",
            "jcop22_ext_auth_2",
            "jcop22_ext_auth_kmc_2",
            "jcop22_ext_auth_nonblock",
            "select",
            "select_2",
            "delete",
            "delete_2",
            "apdu2",
            "prompt",
            "showapdu",
            "sw",
            "des_3des_mac",
            "full_3des_mac",
            "mac_auto_mac",
            "mac_auto_mac_2",
            "superlong",
            "compare",
            "socket_message",
            "generate",
            "sendtext",
            "split",
            "push",
            "let",
            "EOF_TOKEN",
            "MACRO_IDENTIFIER",
            "NUMBER",
            "CRLF",
            "HEX_MACRO_PREFIX",
            "IDENTIFIER",
            "STRING_LITERAL",
            "UNSIGNED_RIGHT_SHIFT",
            "LEFT_SHIFT_EQUAL",
            "RIGHT_SHIFT_EQUAL",
            "UNSIGNED_RIGHT_SHIFT_EQUAL",
            "ELLIPSIS",
            "MissingExpression",
            "ERROR_TOKEN",
            "SnooperSegments",
            "SnooperSegmentItem",
            "Statement",
            "ReturnStmt",
            "SimpleName",
            "FunctionParameterList",
            "StatementList",
            "IfSeg",
            "Expression",
            "ElseSeg",
            "ElseIfStatementList",
            "ElseIfStatementItem",
            "Variable",
            "VariableDecl",
            "ArrayAccesOnLeftSide",
            "NextSegItem",
            "Primary",
            "NextSeg",
            "HnexSeg",
            "HexMacroAbleItem",
            "ApduData",
            "ApduDataList",
            "PostfixExpression",
            "UnaryExpression",
            "MultiplicativeExpression",
            "AdditiveExpression",
            "ShiftExpression",
            "RelationalExpression",
            "EqualityExpression",
            "AndExpression",
            "ExclusiveOrExpression",
            "InclusiveOrExpression",
            "ConditionalAndExpression",
            "ConditionalOrExpression",
            "ArgumentList",
            "LoadOption",
            "SimpleOption",
            "OnOffOption",
            "InstallParameter",
            "ParameterItem",
            "InstallParameterList",
            "UtilFunctionParameterList",
            "Mac_auto_mac_option",
            "MultipleLineApduDataList"
        ];
    String   name(int index){ return snooperParserprs._name[index]; }

     int  originalState(int state){
        return - snooperParserprs._baseCheck[state];
    }
     int   asi(int state) {
        return snooperParserprs._asb[originalState(state)];
    }
      int  nasi(int state ){
        return snooperParserprs._nasb[originalState(state)];
    }
    int   inSymbol(int state){
        return snooperParserprs._inSymb[originalState(state)];
    }

    /**
     * assert(! goto_default);
     */
    int ntAction(int state,  int sym){
        return snooperParserprs._baseAction[state + sym];
    }

    /**
     * assert(! shift_default);
     */
     int  tAction(int state,  int sym){
        var i = snooperParserprs._baseAction[state],
            k = i + sym;
        return snooperParserprs._termAction[ snooperParserprs._termCheck[k] == sym ? k : i];
    }
    int   lookAhead( int la_state ,  int sym){
        var k = la_state + sym;
        return snooperParserprs._termAction[ snooperParserprs._termCheck[k] == sym ? k : la_state];
    }
}
